<?php


class PagamentosController extends BaseController
{
    public function indexAction() {

    }

    public function editarAction() {
        if (!$this->_getParam('id')) {
            $this->_helper->redirector('salario','servidores');
        }

        
        $id = $this->_getParam('id');
        $prontuario = $this->_getParam('prontuario');
        $cod_remessa = $this->_getParam('cod_remessa');
        $data_referencia = $this->_getParam('data_referencia');
        
        /* instancia um lancamento */
        $model = new Application_Model_View_Lancamento();
        $lancamento = $model->fetchRow("id = $id");
        
        /* lista os valores para esse lancamento */
        $modelvalor = new Application_Model_Valor();
        $valores = $modelvalor->fetchAll("prontuario = $lancamento->prontuario and 
        									   cod_remessa = '$lancamento->cod_remessa'
        									    and data_referencia = '$lancamento->data_referencia'");
               
        $this->view->lancamento = $lancamento;
        $this->view->valores = $valores;

        $this->view->form = new Form_Pagamentos_Lancamento($lancamento->prontuario,$lancamento->cod_remessa,$lancamento->data_referencia);
    	
        if ($this->getRequest()->isPost()){
           $this->_gravar($this->getRequest()->getParams(),$prontuario,$cod_remessa,$data_referencia);
       	}

        // preenche os valores do formulario
        foreach ($valores as $valor) {
        	$elementName = 'beneficio_' . $valor->beneficio_id;
            if ($this->view->form->getElement($elementName)) {
                $this->view->form->getElement($elementName)->setValue($valor->planejado);
                $this->view->form->getElement($elementName)->setDescription('planejado: ' . $valor->planejado);
            }
        }
        $this->view->form->motivo->setValue($lancamento->statuslancamento_id);
        $this->view->form->obs->setValue($lancamento->observacao); 
        
    }
    
    protected function _gravar($parametros,$prontuario,$cod_remessa,$data_referencia) {
    	
    	$objModel = new Application_Model_Valor();
    	$obj = $objModel->fetchAll("prontuario = $prontuario and 
        									   cod_remessa = '$cod_remessa'
        									    and data_referencia = '$data_referencia'");
    	
    	$objModel->getAdapter()->beginTransaction();
    	
    	try {
    		if ($this->getRequest()->getPost() && $this->view->form->isValid($parametros)){
    			foreach ($this->getRequest()->getPost() as $campo => $valor) {
    				if (strstr($campo, 'beneficio_')) {
    					$beneficio = str_replace('beneficio_', '', $campo);
    					if($parametros["motivo"] === '6'){
    						
    					$objModel->setValorRealizado($prontuario, $cod_remessa,$data_referencia, $beneficio, $valor);
    					}else {
    					$objModel->setValorRealizado($prontuario, $cod_remessa,$data_referencia, $beneficio, $valor);
    					}
		                
		            }
		        } 
		        $lancamentomodel = new Application_Model_Lancamento();
		        $lancamento = $lancamentomodel->find($this->_getParam('id'))->current();
		        $lancamento->statuslancamento_id = $parametros['motivo'];
		        $lancamento->observacao = $parametros['obs'];
		        $lancamento->save();
		        $this->_helper->flashMessenger('Atualização realizada com Sucesso');
		        $objModel->getAdapter()->commit();
		        $this->_helper->redirector('salario','servidores');
    		}
		        
    	} catch (Exception $e) {
    		$this->_helper->flashMessenger('Houve um erro na atualização');
    		$objModel->getAdapter()->rollBack();
    	}
    	
       
    }
}